import request from './request'

/**
 * 用户登录
 * @param {Object} data - 登录数据
 * @param {string} data.username - 用户名
 * @param {string} data.password - 密码
 * @param {string} data.code - 验证码
 * @param {string} data.uuid - 验证码UUID
 * @returns {Promise} Promise对象
 */
export function login(data) {
  return request({
    url: '/login',
    method: 'post',
    data
  })
}
// login_by_wechat
export function login_by_wechat(data) {
  return request({
    url: '/wechat/login',
    method: 'post',
    data
  })
}

/**
 * 用户登出
 * @returns {Promise} Promise对象
 */
export function logout() {
  return request({
    url: '/logout',
    method: 'post'
  })
}

/**
 * 获取用户信息
 * @returns {Promise} Promise对象
 */
export function getInfo() {
  return request({
    url: '/getInfo',
    method: 'get'
  })
}

/**
 * 获取用户列表
 * @param {Object} params - 查询参数
 * @param {string} [params.userName] - 用户名
 * @param {string} [params.phonenumber] - 手机号
 * @param {string} [params.deptId] - 部门ID
 * @param {string} [params.params.beginTime] - 开始时间
 * @param {string} [params.params.endTime] - 结束时间
 * @param {number} [params.pageNum=1] - 页码
 * @param {number} [params.pageSize=10] - 每页条数
 * @returns {Promise} Promise对象
 */
export function getUserList(params) {
  return request({
    url: '/system/user/list',
    method: 'get',
    params
  })
}

/**
 * 获取用户详情
 * @param {string} id - 用户ID
 * @returns {Promise} Promise对象
 */
export function getUserById(id) {
  return request({
    url: `/system/user/${id}`,
    method: 'get'
  })
}

/**
 * 新增用户
 * @param {Object} data - 用户数据
 * @param {string} data.userName - 用户名
 * @param {string} data.password - 密码
 * @param {string} [data.nickName] - 昵称
 * @param {string} [data.sex] - 性别
 * @param {string} [data.email] - 邮箱
 * @param {string} [data.phonenumber] - 手机号
 * @param {string} [data.deptId] - 部门ID
 * @param {Array} [data.roleIds] - 角色ID数组
 * @returns {Promise} Promise对象
 */
export function addUser(data) {
  return request({
    url: '/system/user',
    method: 'post',
    data
  })
}

/**
 * 修改用户
 * @param {Object} data - 用户数据
 * @param {string} data.userId - 用户ID
 * @param {string} data.userName - 用户名
 * @param {string} [data.nickName] - 昵称
 * @param {string} [data.sex] - 性别
 * @param {string} [data.email] - 邮箱
 * @param {string} [data.phonenumber] - 手机号
 * @param {string} [data.deptId] - 部门ID
 * @param {Array} [data.roleIds] - 角色ID数组
 * @returns {Promise} Promise对象
 */
export function updateUser(data) {
  return request({
    url: '/system/user',
    method: 'put',
    data
  })
}

/**
 * 删除用户
 * @param {string} id - 用户ID
 * @returns {Promise} Promise对象
 */
export function deleteUser(id) {
  return request({
    url: `/system/user/${id}`,
    method: 'delete'
  })
}

/**
 * 修改密码
 * @param {Object} params - 密码参数
 * @param {string} params.oldPassword - 旧密码
 * @param {string} params.newPassword - 新密码
 * @returns {Promise} Promise对象
 */
export function updatePassword(params) {
  return request({
    url: '/system/user/profile/updatePwd',
    method: 'put',
    params
  })
}

/**
 * 获取用户角色授权信息
 * @param {string} id - 用户ID
 * @returns {Promise} Promise对象
 */
export function getAuthRole(id) {
  return request({
    url: `/system/user/authRole/${id}`,
    method: 'get'
  })
}

/**
 * 更新用户角色授权
 * @param {Object} params - 授权参数
 * @param {string} params.userId - 用户ID
 * @param {string} params.roleIds - 角色ID字符串(逗号分隔)
 * @returns {Promise} Promise对象
 */
export function updateAuthRole(params) {
  return request({
    url: '/system/user/authRole',
    method: 'put',
    params
  })
}

/**
 * 修改用户状态
 * @param {Object} data - 状态数据
 * @param {string} data.userId - 用户ID
 * @param {string} data.status - 状态(0正常 1停用)
 * @returns {Promise} Promise对象
 */
export function updateUserStatus(data) {
  return request({
    url: '/system/user/changeStatus',
    method: 'put',
    data
  })
}